import { createStore } from 'vuex'

const files = require.context('./modules', false, /\.ts$/)

interface Imodule {
  [key: string]: any
}
const modules = files.keys().reduce((modules: Imodule, modulePath) => {
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = files(modulePath)
  modules[moduleName] = value.default
  return modules
}, {})

export default createStore({
  modules
})
